/**
 * 
 */
package jframe.launcher.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.management.ManagementFactory;

/**
 * @author dzh
 * @date Jun 9, 2013 2:14:50 PM
 */
public class Program {

	/**
	 * @return the PID of current Java process
	 */
	public static final String getPID() {
		String name = ManagementFactory.getRuntimeMXBean().getName();
		return name.substring(0, name.indexOf('@'));
	}

	/**
	 * 
	 * @param pid
	 *            进程ID
	 * @param pid_file
	 *            写入文件
	 * @throws IOException
	 */
	public static void writePID(String pid, String pid_file) throws IOException {
		File file = new File(pid_file);
		writePID(pid, file);
	}

	public static void writePID(String pid, File pid_file) throws IOException {
		if (!pid_file.exists()) {
			pid_file.getParentFile().mkdirs();
			if (!pid_file.createNewFile())
				throw new IOException("Can't create the pid file: "
						+ pid_file.getAbsolutePath());
		}
		FileWriter fw = null;
		try {
			fw = new FileWriter(pid_file);
			fw.write(pid);
			fw.flush();
		} catch (FileNotFoundException e) {
			throw e;
		} finally {
			if (fw != null)
				fw.close();
		}
	}

}
